#include <stdio.h>
#include <string.h>
struct File_Meg
{
    char file_name[128];
    char file_ext[128];
    char file_dir[128];
};

struct Birth
{
    int y,m,d;
};
struct Student
{
    int num;
    char name[32];
    int score;
    struct Birth bir;
};
/*
    写一个函数，完成从一个给定的完整的文件路径
     （如"C:\My Documents\Software Test 1.00.doc")中，
    析取文件名，扩展名和文件所处目录的功能，编写程序时，请在必要的地方加以注释
*/
struct File_Meg Get_file_Meg(char* file_path_name)
{
    struct File_Meg file_meg = {0};
   
    char*p = file_path_name+strlen(file_path_name)-1;
    int ext_flag = 1;
    //扩展名
    while(*p != '.')
    { 
        if(p == file_path_name)
            break;
        p--;
    }
    if(*p == '.')
    {
        strcpy(file_meg.file_ext,p); 
    }
    else
    {
        ext_flag = 0;
        p = file_path_name+strlen(file_path_name)-1;
    }
    //文件名
    while(*p != '\\')
    {
        if(p == file_path_name)
            break;
        p--;
        
    }
    if(*p == '\\')
    {
        strncpy(file_meg.file_name,p+1, strlen(p+1)-strlen(file_meg.file_ext)); 
    }
    else
    {
        if(ext_flag == 0)// 整个字符串只有我的文件名
        {
            strcpy(file_meg.file_name,file_path_name); 
            return file_meg;
        }

    }

    //目录名
    strncpy(file_meg.file_dir,file_path_name, strlen(file_path_name)-strlen(p+1));

    return file_meg;
}
void Input_student_data(struct Student* p, int n)
{
    for(int i = 0; i < n; i++)
    {
        scanf("%d%s%d%d%d%d", &p[i].num, p[i].name, &p[i].score, &p[i].bir.y, &p[i].bir.m, &p[i].bir.d);
    }
}
void Sort_Down(struct Student* p, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n-i-1; j++)
        {
            if(p[j].score  < p[j+1].score)
            {
                struct Student t;
                t = p[j];
                p[j] = p[j+1];
                p[j+1] = t;      
            }
           
        }
    }
}
void Print_student_data(struct Student* p, int n)
{
    for(int i = 0; i < n; i++)
    {
        printf("%d %s %d %d/%d/%d\n", p[i].num, p[i].name, p[i].score, p[i].bir.y, p[i].bir.m, p[i].bir.d);
    }
}
int main()
{
    // char s[128] = {0};

    // gets(s);

    // struct File_Meg f_m = Get_file_Meg(s);

    // printf("扩展名：%s\n", f_m.file_ext);
    // printf("文件名：%s\n", f_m.file_name);
    // printf("目录名：%s\n", f_m.file_dir);
    struct Student s[5];
    Input_student_data(s, 5);

    //Sort_Down:以分数为基准进行降序排序
    Sort_Down(s, 5);

    Print_student_data(s, 5);
}